package org.xebia.roo.addon.compareto;

import java.util.Set;

import org.springframework.roo.model.JavaType;

/**
 * Interface of operations this add-on offers. Typically used by a command type or an external add-on.
 *
 * @since 1.1
 */
public interface ComparetoOperations {

	/**
	 * Indicate commands should be available
	 * 
	 * @return true if it should be available, otherwise false
	 */
	boolean isCommandAvailable();

	/**
	 * Annotate the provided Java type with the trigger of this add-on
	 * @param excludeFields 
	 */
	void annotateType(JavaType type, Set<String> excludeFields);
	
	
	/**
	 * Setup all add-on artifacts (dependencies in this case)
	 */
	void setup();
}